package QianFeng13;
/**
 * 正则表达式语法
 * 在 Java 中，\\ 表示：我要插入一个正则表达式的反斜线，所以其后的字符具有特殊的意义。
 * 也可以简单的理解在 Java 的正则表达式中，两个 \\ 代表其他语言中的一个 \，
 * 这也就是为什么表示一位数字的正则表达式是 \\d，而表示一个普通的反斜杠是 \\\\。
 *
 * 正则表达式用例展示
 **/
public class RegexTest {

    public static void main(String[] args) {
        //匹配电话号码
        String phoneNumber = "010-38389439";
        boolean b = phoneNumber.matches("\\d{3,4}-\\d{7,8}");
        System.out.println(b);
        //匹配手机号
        String phone = "143814381438";
        boolean b2 = phone.matches("[1][3-9]\\d{9}");
        System.out.println(b2);
        //匹配用户名：字母开头，数字字母下划线组合
        String userName = "admin123";
        System.out.println(userName.matches("[a-zA-Z]+[\\w|_]*"));
        //匹配IP地址
        String ip = "192.168.43.211";
        System.out.println(ip.matches("^((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.){3}(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])$"));
        //匹配网址
        String address = "http://www.baidu.com";
        System.out.println(address.matches("http://\\w+.\\w+.\\S*"));
        //匹配年龄
        String age = "18";
        System.out.println(age.matches("\\d{1,3}"));
        //匹配金额
        String price = "19.5";
        System.out.println(price.matches("\\d+.\\d+"));
    }
}
